Thema Datum  Von Nutzer Rating
Antwort
Rot Konvertierung von .txt -> .xls
23.11.2017 10:33:16 Benjamin
NotSolved
23.11.2017 17:07:49 Mackie
NotSolved

Ansicht des Beitrags:
Von:
Benjamin
Datum:
23.11.2017 10:33:16
Views:
671
Rating: Antwort:
  Ja
Thema:
Konvertierung von .txt -> .xls
Hallo zusammen, ich arbeite mich aktuell in VBA ein. Habe folgende Aufgabe:
 
Ich muss eine .txt Datei in eine .xls Datei umwandeln. Dabei existieren auch gewisse Anforderungen:
 
1) Alle Spalten müssen unbenannt werden. Es gibt insgesamt 15 Spalten, die unbenannt werden müssen. Kann ich da einfach 15 mal die Replace-Function_ verwenden oder gibt es da bessere Varianten?
 
2) Es müssen 5 neue Spalten hunzugefügt werden. Es müssen aber keine Daten in die Spalten eingefügt werden
 
3) Es müssen gewisse Spalten gelöscht werden, weil sie im neuen System (.xls) nicht relevant sind
 
4) Manche Spalten müssen als NUM gesetzt werden. Unterscheid Excel eigentlich zwischen verschiedenen Inhalten? Also als Beispiel Text, Num etc?
 
5) Manche Spalten müssen als Protected gesetzt werden
 
 
Meine Lösung:
 
1) Dazu habe ich jeweils für jede Spalte immer eine Replace-Function angewendet
 
Für den Rest habe ich noch keine Lösung. Ist es möglich, dass ihr mir eventuell Lösungsansätze oder Denkanstöße geben könntet?
 
Aktuell lasse ich die .txt Dateil einlesen, die Spalten unbenennen und in die aktuelle Arbeitsmappe einfügen
 
so schaut mein Code aus:
 
 
Sub convert()
 
    Dim ZeileMax As Integer, j As Integer, i As Integer
    Dim temp, Text
        
    ZeileMax = Sheets(1).UsedRange.Rows.Count
    Debug.Print ZeileMax
    Open "c:/work/Konverter/Example.txt" For Input As #1
    Do While Not EOF(1)
        Line Input #1, temp
        temp = Replace(temp, "STUDYID", "Study Number")
        temp = Replace(temp, "PCTEST", "Analyte")
        temp = Replace(temp, "PCSPEC", "Matrix")
        temp = Replace(temp, "USUBJID", "Subject")
        temp = Replace(temp, "VISITDY", "Day Nominal")
        temp = Replace(temp, "PCTPTNUM", "Hour Nominal")
        temp = Replace(temp, "PCORRES", "Concstat")
        temp = Replace(temp, "PCSTRESU", "Concentration Unit")
        temp = Replace(temp, "PCREASND", "Condition")
        ActiveSheet.Cells(ZeileMax, 1) = temp
        For j = 1 To ZeileMax
            Text = Split(Cells(j, 1), vbTab)
                For i = 0 To UBound(Text)
                    Cells(j, i + 1) = Text(i)
                Next
        Next
        ZeileMax = ZeileMax + 1
    Loop
    Close #1
End Sub
 
Ist meine aktuelle Vorgehensweise so in Ordnung?Ich freue mich über jede Hilfe. 
 

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Konvertierung von .txt -> .xls
23.11.2017 10:33:16 Benjamin
NotSolved
23.11.2017 17:07:49 Mackie
NotSolved